package map04;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
* HashMap第二种遍历方式：
*   Set<Map.Entry<K,V>> entrySet()
          返回此映射所包含的映射关系的 Set 视图。
*    Set  entrySet()  ： Set:代表 entrySet() 方法返回一个Set集合
*    Set<> : 代表将来存储到Set集合中元素的类型
*    Set<Map.Entry> ：代表Set集合中存储的元素类型为 Map.Entry
*
*   Set<Map.Entry<K,V>>：代表Set集合中存储的元素类型是Map.Entry，Entry上指定的键(K)和值(V)的类型
* */
public class HashMapDemo02 {
    public static void main(String[] args) {
        HashMap<String, String> hm = new HashMap<>();
        hm.put("无忌","赵敏");
        hm.put("乔峰","阿朱");
        hm.put("段誉","王语嫣");

        Set<Map.Entry<String, String>> entries = hm.entrySet();

       /* for(Map.Entry<String, String> me :entries){
            System.out.println(me.getKey()+" "+me.getValue());
        }*/

        //无忌 赵敏
        //乔峰 阿朱
        //段誉 王语嫣

        System.out.println(entries); // [无忌=赵敏, 乔峰=阿朱, 段誉=王语嫣]

        // 获取一个迭代器
        Iterator<Map.Entry<String, String>> iterator = entries.iterator();
        while(iterator.hasNext()){
            Map.Entry<String, String> node = iterator.next();           //  无忌 赵敏
            System.out.println(node.getKey()+" "+node.getValue());     //  乔峰 阿朱
        }                                                              //   段誉 王语嫣
     }
}
